Relations souples entre les Anveo Pages
Normalement, Anveo Client Suite identifie la relation entre deux Anveo Pages à l’aide des relations de table qui sont définies une seule fois globalement pour toutes les Anveo Pages. Cette configuration se fait en »Anveo. Par exemple, la relation entre la »Customer et le »Sales ne doivent donc pas être définis manuellement pour chaque constellation de Anveo Page comme dans .
Pour des scénarios plus spéciaux dans lesquels la relation entre deux tables ne doit pas être créée par la relation directe d’un champ à l’autre, un code C/AL peut être déposé dans l’codeunit. »ACF fonction CustomAnveoPageRelation qui définit la relation manuellement. Ceci permet, par exemple, d’éditer le contact correspondant pour un client.
La relation décrite ci-dessus est définie en code C/AL dans l’exemple de code suivant :
// Show related company contact from customer
// Data Source: Customer
// Destination: Contact
// 1. Set table reference
RecRef.SETTABLE(Customer);
Mgt.OPENRecRef(DATABASE::Contact,DestRecRef);
// 2. Filter
ContBusRel.RESET;
ContBusRel.SETCURRENTKEY("Link to Table","No.");
ContBusRel.SETRANGE("Link to Table",ContBusRel."Link to Table"::Customer);
ContBusRel.SETRANGE("No.",Customer."No.");
IF ContBusRel.FINDFIRST THEN
Contact.GET(ContBusRel."Contact No.");
Contact.SETRECFILTER;
// 3. Copy Filters to DestRecRef
DestRecRef.SETVIEW(Contact.GETVIEW);
Vous pouvez rechercher le code source affiché ci-dessus dans la fonction CTR_CUSTOMER:CONTACT d’ACF Events Sales & Marketing.
La création d’une relation de table personnalisée se fait selon le même schéma :
- Convertir la référence d’un enregistrement en un enregistrement ; créer une variable locale et l’affecter (ligne 6).
- Créez la table de destination comme variable locale. La table de destination a le type de la Anveo Page destination (dans l’exemple de table Contact).
- Transférer le filtre à la référence de l’enregistrement (ligne 17)
Pour utiliser la relation de table personnalisée dans le Anveo Web Portal, un appel à la fonction CustomAnveoPageRelation est nécessaire, en utilisant le code de relation CTR_CUSTOMER:CONTACT :
CASE RelationCode OF
'CUSTOMER:CONTACT': "CTR_CUSTOMER:CONTACT"();
END;
Le code de relation CLIENT:CONTACT doit être rendu public dans la configuration d’Anveo Client Suite et doit être entré dans la Anveo Page en tant que relation de table individuelle, afin que Anveo Client Suite utilise la relation de table définie manuellement au lieu des relations de table automatique définies globalement. L’enregistrement utilisé pour le filtrage des Anveo Pages de type carte est défini par l’enregistrement affiché sur la carte ; dans la liste Anveo Pages de type, l’enregistrement à filtrer est défini par l’enregistrement sélectionné.